Fix ESP32-S3 cannot reset to bootrom when using USB OTG #7828
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Change
This PR fixes an issue when GPIO20 (USB D+) pull-up is not enabled for usb jtag when we switch from OTG to Jtag when reset to bootrom. Which renders upload with OTG-USB is not possible and require manual hold BOOT and reset. The issue is introduced with IDF 4.4.3 specially from this commit espressif/esp-idf@01143bd . As mentioned in the commit message, USB D+ should be re-enabled when setup/install usb jtag.
This has been causing lots of confusion and frustration for our user.
Tests scenarios
Tested with Arduino core v2.0.6 on Espressif ESP32-S3 devkit (literally any S3 board). Steps to reproduce
Then only connect the USB OTG connector on the board and click upload. The first it could works, however after the code compiled with v2.0.6 is running. Click upload again, board will disconnect but never re-appear as JTAG CDC since D+ pull up is overrided and disabled.
PS: @me-no-dev This issue is kind of critical since it affects lots of our users. If possible would you please include this in the upcoming release 2.0.7. Thanks.
@ladyada